#pragma once
#include "d3dx11effect.h"
#include "DXUT.h"
#include "Shader.h"
#include "Structs.h"

class PerPixelLightingShader: public Shader
{
public:
	PerPixelLightingShader(void);
	virtual ~PerPixelLightingShader(void);

	virtual bool Initialize(ID3D11Device* pd3dDevice);

	void SetShaderParameters(const D3DXMATRIX&, const D3DXMATRIX&, const D3DXMATRIX&, D3DXVECTOR3&, D3DXVECTOR4&);
	void SetShaderWVPMatrix(const D3DXMATRIX&, const D3DXMATRIX&, const D3DXMATRIX&);
	void SetShaderCameraPosition(D3DXVECTOR3&);
	void SetShaderDefaultColor(D3DXVECTOR4&);
	void SetShaderLight(int, const D3DXVECTOR3&, const D3DXVECTOR4&, const D3DXVECTOR4&, const D3DXVECTOR3&);
	void SetShaderMaterial(const sMaterial&);
	void SetShaderTexture(ID3D11ShaderResourceView*);
	void SetShaderTextureNormal(ID3D11ShaderResourceView*);
	void SetShaderClippingPlane(const D3DXVECTOR4&);
	void SetShaderEnableLighting(bool);
	void SetShaderEnableTexture(bool);
	void SetShaderEnableBumpMapping(bool);

};

